//
//  SQLManager.swift
//  FMDB演练
//
//  Created by apple on 16/7/8.
//  Copyright © 2016年 apple. All rights reserved.
//

import UIKit
// 数据库名称
private let dbName = "status.db"
class SQLManager{
    // 全局访问点
    static let sharedTools:SQLManager = SQLManager()
    // 队列方式
    let queue:FMDatabaseQueue
    // 构造函数
    private init(){
        
        // 打开数据库
        
        let path = (NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent(dbName)
        // 打印路径
        print(path)
        
        queue = FMDatabaseQueue(path: path)
        
        // 创建表
        createTabel()
        
    }
    // 创建表
    private func createTabel(){
        // 获取文件
        let file = NSBundle.mainBundle().pathForResource("db.sql", ofType: nil)!
        // 准备sql
        let sql =  try! String(contentsOfFile: file)
        // 执行sql
        queue.inDatabase { (db) -> Void in
            let resutl = db.executeStatements(sql)
            if resutl {
                print("创建表成功")
            }else {
                print("创建表失败")
            }
        }
    }
    
    
    // 查询本地数据库中的数据 返回一个类型为字典的数组
    func execRecord(sql: String) -> [[String: AnyObject]]{
        // 创建一个临时可变数组
        var tempArray:[[String: AnyObject]] = [[String: AnyObject]]()
        // 执行sql
        SQLManager.sharedTools.queue.inDatabase { (db) -> Void in
            let resultSet = db.executeQuery(sql, withArgumentsInArray: nil)
            // 遍历结果
            while resultSet.next() {
                // 创建一个可变字典
                var dict:[String: AnyObject] = [String: AnyObject]()
                // for in
                for i in 0..<resultSet.columnCount() {
                    // 类似key
                    let name = resultSet.columnNameForIndex(i)
                    // 类似value
                    let value = resultSet.objectForColumnIndex(i)
                    // 赋值
                    dict[name] = value
                }
                // 保存字典
                tempArray.append(dict)
            }
            
        }
        return tempArray
    }

}





